Graphical models are widely used in today's business world for various purposes, including data modeling, business process modeling and technical software modeling such as, for example, class modeling, deployment modeling, etc.
Different options are available today for developing models. Drawing tools (e.g., versions of Microsoft® Visio® available from the Microsoft Corporation) typically provide a variety of graphical elements and a relatively high level of flexibility in drawing models. Thus, they can be used to draw models for almost any domain (e.g., business models, data models, technical software models such as class and deployment modeling, etc.) However, drawing tools are limited to providing a graphical representation of a domain, and do not define relationships (e.g., properties) between the graphical elements of the graphical representation and the objects of the domain that they represent. Thus, graphical models drawn using drawing tools do not provide a rich model of the domain being modeled that can be understood and used by other applications. For example, a user can develop a graphical model of a business process using a drawing tool, but generating a process model simulation from the graphical model would be either extremely difficult or impossible.
Graphical designer applications (e.g., modeling tools), on the other hand, typically define strong relationships between the diagram elements and the objects of the model domain that they represent. This is because graphical designers typically are designed for a specific graphical-modeling language (e.g., the Unified Modeling Language (UML)) and/or for a specific model domain (e.g., business workflows). Accordingly, graphical designers typically provide strong support for the syntax and semantics of the particular graphical-modeling language for which they are designed. However, the extensibility and customizability of known graphical designers is limited. Although some graphical designers offer limited user-definable features, which allow users to customize such tools to a certain degree, the vast majority of the functionality of such designers is hard-coded and thus cannot be changed by the user. As a result, graphical designers are difficult to customize and extend to develop graphical models for model domains that require object types, properties, relationships, etc. not within the predefined parameters of the graphical designer.